package com.service;

import com.entity.AddressBook;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * (AddressBook)表服务接口
 *
 * @author makejava
 * @since 2023-05-31 17:51:54
 */
public interface AddressBookService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AddressBook queryById(Integer id);

    /**
     * 通过ID查询单条数据
     *
     * label为标签分类
     * @return 实例对象
     */
    PageInfo<AddressBook> labelByPage(int pageNum, int pageSize,String label);

    /**
     *模糊查询
     * @param condition
     * @return 实例对象
     */
    PageInfo<AddressBook> fuzzyQuery(int pageNum, int pageSize, String condition);

    /**
     * 分页查询
     *
     * @param pageNum
     * @param pageSize
     * @return 查询结果
     */
    PageInfo<AddressBook> selectByPage(int pageNum, int pageSize);

    /**
     * 新增数据
     *
     * @param addressBook 实例对象
     * @return 实例对象
     */
    AddressBook insert(AddressBook addressBook);

    /**
     * 修改数据
     *
     * @param addressBook 实例对象
     * @return 实例对象
     */
    AddressBook update(AddressBook addressBook);

    /**
     * 通过主键删除数据至回收站
     *
     * @param selectedContacts 主键
     * @return 是否成功
     */
    boolean deleteById(List<Integer> selectedContacts);

    /**
     * 通过主键彻底删除
     *
     * @param selectedContacts 主键
     * @return 是否成功
     */
    boolean trueDeleteById(List<Integer> selectedContacts);

    /**
     * 回收站页面
     * @param pageNum
     * @param pageSize
     * @return 查询结果
     */
    PageInfo<AddressBook> recyclePage(int pageNum, int pageSize);

    /**
     * 通过主键从回收站恢复数据
     * @param selectedContacts 主键
     * @return 是否成功
     */
    boolean recover(List<Integer> selectedContacts);

}
